package com.aizuda.boot.modules.business.negotiation.entity.vo;


import com.aizuda.boot.modules.business.contract.entity.dto.UserInfoDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.List;

/**
 * 协商列表响应DTO
 */
@Data
@Schema(description ="协商列表单项数据")
public class NegotiationListRespDTO {
    
    @Schema(description = "合同ID")
    private Integer contractId;
    
    @Schema(description = "协商实例ID")
    private Integer negotiationInstanceId;
    
    @Schema(description = "合同名称")
    private String contractName;
    
    @Schema(description = "合同编号")
    private String contractCode;
    
    @Schema(description = "申请人信息")
    private UserInfoDTO applicant;
    
    @Schema(description = "申请人部门名称")
    private String department;
    
    @Schema(description = "协商参与者列表")
    private List<UserInfoDTO> negotiators;
    
    @Schema(description = "合同类型")
    private String contractType;
    
    @Schema(description = "最后确认时间，格式 yyyy-MM-dd HH:mm")
    private String lastConfirmTime;
    
    @Schema(description = "是否所有节点已确认")
    private Boolean allNodesConfirmed;
    
    @Schema(description = "协商阶段：发起合同申请、审批中、发起合同变更、合同撤回")
    private String negotiationStage;
    
    @Schema(description = "协商状态：审核中、审核完成、待发起审核、取消审核")
    private String negotiationStatus;
    
    @Schema(description = "协商状态码：IN_NEGOTIATION、NEGOTIATION_COMPLETE、PENDING_NEGOTIATION、NEGOTIATION_CANCELED")
    private String negotiationStatusCode;
    
    @Schema(description = "协商进度，例如 ：1/6")
    private String negotiationProgress;
    
    @Schema(description = "确认进度：全部节点未完成、全部节点已完成")
    private String confirmProgress;
    
    @Schema(description = "已确认角色，多个角色用逗号分隔，例如：法务,财务")
    private String confirmedRoles;
    
    @Schema(description = "开始时间，格式 yyyy-MM-dd HH:mm")
    private String startTime;
} 